<?php
/**
*比赛模型
*赛事下的比赛,一个比赛可包含多局的比赛
*@author susy.liang<liangling@ilongyuan.com.cn>
*/

namespace Common\Service;


Class RaceGroupService extends BaseService
{
	/**
	 *id:比赛标识			match_id:赛事标识
	 *title:比赛的标题		detail:比赛描述
	 *create_time:创建时间  status:状态
	 *race_time:比赛的时间  sort:排序 按升序
	 *race_date :比赛几号开始  race_hour:比赛几点开始
	 *state:发布状态 0 |否, 1|是
	 *cover:比赛的封面图片		
	 *competitor:战队标识 数组	update_time:更新时间
	 *game_id:游戏ID  match_id:赛事标识
	 *score :总比分 
	 *recommend:推荐的比赛视频 (race_ids|比赛ID video_ids|视频)
	 */
	//subtitle:针对app的短标题 先保留着
	/**
	*审核状态的值
	*@var int
	*/
	CONST STATUS_PEDDING = 0;

	/**
	*启用状态的值
	*@var int
	*/
	CONST STATUS_PASS = 1;

	/**
	*删除状态的值
	*@var int
	*/
	CONST STATUS_DEL = -1;
	
	/**
	*校验项的设置
	*@var array
	*@access protected
	*/
	protected $_validate = array(
		array('title', 'require', '请设置比赛的标题', self::MUST_VALIDATE , 'regex', self::MODEL_BOTH),
		array('match_id', 'require', '请选择所属赛事', self::MUST_VALIDATE , 'regex', self::MODEL_BOTH),
		array('race_time', 'require', '请设置比赛时间', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
		array('score', 'checkScore', '比分格式错误', self::VALUE_VALIDATE, 'callback'),
	);

	/**
	*自动值的设置项
	*@var array
	*@access protected
	*/
	protected $_auto = array(
        array('match_id', 'intval', self::MODEL_BOTH, 'function'),
        array('game_id', 'getGameId', self::MODEL_BOTH, 'callback'),
        array('race_date', 'getRaceDate', self::MODEL_BOTH, 'callback'),
        array('race_hour', 'getRaceHour', self::MODEL_BOTH, 'callback'),
        array('title', 'htmlspecialchars', self::MODEL_BOTH, 'function'),
        array('detail', 'htmlspecialchars', self::MODEL_BOTH, 'function'),
        array('create_time', NOW_TIME, self::MODEL_INSERT),
        array('update_time', NOW_TIME, self::MODEL_BOTH),
        array('status', 'intval', self::MODEL_BOTH, 'function'),
        array('id', 'intval', self::MODEL_BOTH, 'function'),
    );  

	/**
	*比分格式的校验
	*@author susy.liang<liangling@ilongyuan.com.cn>
	*/
	protected function checkScore($score){
		if(strpos($score, '-'))
			return true;
		else
			return false;
	}

	/**
	*根据match_id获取game_id写入database
	*@author susy.liang<liangling@ilongyuan.com.cn>
	*/
	protected function getGameId(){
		$matchId = I('match_id', 0, 'intval');
		$gameId = D('Match', 'Service')->where(array('id'=>$matchId))->getField('game_id',true);
		return intval($gameId[0]);
	}

	/**
	*根据race_time获取比赛的日期写入database
	*@author susy.liang<liangling@ilongyuan.com.cn>
	*/
	protected function getRaceDate(){
		$raceTime = explode(' ', I('race_time'));
		return $raceTime[0];
	}

	/**
	*根据race_time获取比赛的小时写入database
	*@author susy.liang<liangling@ilongyuan.com.cn>
	*/
	protected function getRaceHour(){
		$raceTime = explode(' ', I('race_time'));
		return $raceTime[1];
	}
}